计算机组成原理
概论
高级语言 又称算法语言,面向解决实际问题所用的算法,瞄准处理问题和解题过程的程序
汇编语言 是对计算机机器语言进行符号化处理的结果,再增加一些方便程序设计而实现的扩展功能 在汇编语言中,可以用英文或缩写替代二进制的指令代码,更容易记忆和理解
机器语言 是计算机硬件能直接识别和运行的指令的集合,是二进制码组成的指令 程序最小的执行单元是指令。
翻译程序 将高级语言翻译成机器语言程序的软件
- 编译程序 将用户编写的高级语言程序的全部语句一次全部翻译成机器语言程序
- 解释程序 将源程序的一条语句翻译成对应于机器语言的一条语句,并且立即执行
计算机体系结构 是指那些能够别程序员所见到的计算机系统属性,即概念性的结构和功能特性
计算机组成 是指如何实现计算机体系结构所体现的属性,它包含了许多对程序员来说透明的硬件细节
冯·诺依曼计算机
- 计算机由运算器、存储器、控制器、输出和输入五设备五大部件组成
- 指令和数据以同等地位存放在存储器内,并可以按地址寻访
- 指令和数据均用二进制数表示
- 指令有操作码和地址码组成,操作码用来表示操作的属性,地址码用来表示操作数在存储器中的位置 (在操作数这个字段中可以放操作数本身,也可以放操作地址,还可以放操作地址的计算方法)
- 指令在存储器内按顺序存放,通常指令是顺序执行的,在特定的条件下,可以根据运算结果或设定的条件改变执行顺序
- 机器以运算器为中心,输入输出设备与存储器间的数据传送通过运算器完成(所以有了总线)
CUP Central Processing Unit
ALU Arithmetic Logic Unit 算术逻辑单元,用来完成算术逻辑运算
- ACC Accumulator 累加器
- MQ Multiplier_Quotient Register 乘商寄存器
- X 操作数寄存器
CU Control Unit 控制单元 用来解释存储器中的指令,并发出各种操作命令来执行指令
- PC Program Counter 用来存放当前欲执行的指令地址,和MAR有通路
- IR Instruction Register 用来存放当前指令,从MDR中读取到的指令
- CU Control Unit 用来分析当前指令所需完成的操作,并发出各种微操作命令序列,用以控制所有被控制的对象
一条指令执行包括三个过程:取址、分析、执行
- 取址:命令寄存器读出一条指令
- 分析:对指令分析,指出该完成什么操作,并按照寻址特征指明操作数的地址
- 执行:根据操作数所在的地址以及指令的操作码完成某种操作
MM Main Memory
- MAR Memory Address Register 存储器地址寄存器:用来存放访问单元的地址,位数代表存储单元的个数。
- MDR Memory Data Register 存储器数据寄存器:用来存放从存取体某单元取出的代码或者准备往某存储体存入的代码
现在的CPU中集成了MAR和MDR
机器字长 指CPU一次能够处理数据的位数,通常与寄存器的位数有关
存储容量 = 存储单元个数(MAR) × 存储字长(MDR)
运算速度 用单位时间内执行命令的平均条数来衡量,并用MIPS(Million Instruction Per Second)作为计量单位
CPI Cycle Per Instruction 执行一条指令所需要的的时钟周期(机器主频的导数)
FLOPS Float Point Operation Per Second 每秒浮点运算次数
总线
单总线多总线之间的变化:
- 单总线到双总线 将速度较低的I/O设备从从单总线上分离出来
- 双总线到三总线 将I/O总线中高速设备连接到DMA总线上
- 三总线到四总线 将主存总线 分为 局部总线(CPU 和 Cache)和系统总线(MM 和 Cache)
总线通信控制
同步通信
CPU在T1上升沿发出地址信息;在T2上升沿发出读命令;在T3上沿到来之前,将CPU所需要的数据送到数据总线上;在T3始终周期里内将数据线上的信息送到内部寄存器中;在T4的上沿撤销读命令,撤销对数据总线的驱动。
适用于总线长度较短,各部件的存取周期一致的场合
异步通信
异步通信分为不互锁,半互锁,全互锁三种
不互锁:主模块发出请求信号后,不必等待从模块的回答信号,而是经过一段时间后,确认从模块已经收到请求信号后,便撤销其请求信号。
半互锁:主模块发出请求信号,必须待接到从模块的回答信号后再撤销其请求信号,有互锁关系;而从模块在接到请求信号发出的回答信号,但不必等待获知主模块的请求信号已经撤销,而是隔一段时间自 动撤销回答信号,无互锁关系。
全互锁:主模块发出请求信号,必须待从模块回答后在撤销其请求信号;从模块发出回答信号,必须待获知主模块请求信号已撤销后,在撤销其回答信号。
若从模块工作速度慢,在T3时钟周期无法提供数据,则必须在T3到来前通知主模块,给出低电平信号;若主模块在T3周期到来之前检测到了低电平信号,则插入一个时钟周期Tw
分离式通信省略
存储器
RAM(Random Access Memory) 随机存储,存储的时间和存储单位的物理位置无关
- 静态的 SRAM(以触发器原理存储信息)和 动态的 DRAM(以电容充放电原理存储信息 需要每2ms使用刷新放大器刷新 防止信息丢失)
ROM(Read Only Memory) 只能读,不能写入
- MROM 由厂家制作不可再次写入 行列选择线交叉处可以由MOS管 也可以没有
- PROM 由双极电路和熔丝构成 可一次写入不可修改
- EPROM 使用浮动栅MOS电路,给漏端加高电压,浮动栅浮起阻断电路;紫外线照射擦除
- EEPROM 电可擦存储器,Flash Memory
辅存
- 磁盘 光盘 磁带
缓存
- cache
串行存储器 对其读写时,需要按其物理位置的先后顺序寻找地址
存储容量 = 存储单元个数 x 存储字长 (能存储二进制码的总位数)
存储容量 = 存储单元个数 x 存储字长/8 (能存储字节的总位数)
存储速度
- 储周期(连续两次独立的存储操作时间所需的最小间隔时 间 MOS 100ns TTL 10ns)
- 存取时间(读或者写时间)
存储器带宽 单位时间内存储的信息量 (T 500ns 16位 带宽为 32M位/秒)
存储器与CPU连接
存储容量的扩展
- 位扩展:增加存储字长
- 字扩展:增加存储器的数量
- 字位同时扩展
地址线的连接:通常将CPU地址线的低位与存储芯的低位相连。CPU的高位用于存储芯扩充,片选线等
数据线的连接:必须对存储芯片扩位,使其数据位数与CPU相等
读写命令线的连接:CPU的读写命令线一般直接和存储芯片的读写端相连,通常高电平位读,低电平位写。
片选线的连接:存储器由许多存储芯片组成,哪一片被选中完全取决于该存储芯片的片选控制端是否接收到来自CPU的片选有效信号;且片选有效信号和访存控制信号有关(若访问I/O,则访存控制信号位高电平,表示不要求存储器工作);CPU中没有与存储芯片连接的高位地址线必须和访存控制信号共同产生存储芯片的片选信号。
存储器的校验
二进制位数为n,需要校验k位,组成n+k位代码满足:2^k >= n + k +1
汉明码偶校验:只需⊕ 1, 3, 5, 7
2, 3, 6, 7
4, 5, 6, 7
得到 C1, C2, C3